<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>箭头函数</title>
</head>
<body>
    <script>
        // ES6 允许使用「箭头」（=>）定义函数。 function fn(a,b,c){}   
        //1. 声明格式 
        // let fn = (a,b,c) => {
        //     //代码体
        //     let res = a + b + c;
        //     console.log(res);
        //     return res;
        // };
        // //2. 函数调用
        // let result = fn(1, 2, 3);
        // console.log(result);

        // 箭头函数特点 
        // 1. this 的值是静态的.  call apply
        // let main = () => {
        //     //this始终指向的是外层作用域下 this 的值
        //     console.log(this);
        // };
        // // main();
        // main.call({});

        // 2. 不能作为构造函数使用
        // let Fn = () => {};
        // let f = new Fn();

        // 3. 不能使用 arguments 
        // let fn = () => {
        //     console.log(arguments);
        // }

        // fn(1,2,3,4,5,6,7);

        // 4. 箭头函数简写
        // 一 不写小括号, 当形参有且只有一个的时候
        // let pow = item => {
        //     return item * item;
        // }
        // console.log(pow(9));

        // 二 不写花括号, 当代码体只有一条语句的时候, 并且语句的执行结果为函数返回值的 (如果不写花括号的话, return 也不能写)
        let pow = item => item * item;
        console.log(pow(10));
    </script>
</body>
</html>